package net.servir.capacidades.web.controller;

import java.util.ArrayList;
import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import net.servir.capacidades.model.IdentificacionUsuario;
import net.servir.capacidades.model.Sistema;
import net.servir.capacidades.model.Usuario;
import net.servir.capacidades.model.jsp.JspSistemas;
import net.servir.capacidades.service.CapacidadesService;
import net.servir.capacidades.service.SistemaAdmService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class SistemasController {

	@Autowired 
	private CapacidadesService capacidadesService;
	
	@Autowired 
	private SistemaAdmService sistemaAdmService;
	
	
	@RequestMapping("/sistemas.htm")
	public @ModelAttribute("sistemas")
	JspSistemas participanteBusqueda(HttpServletRequest request) throws Exception {
		
		JspSistemas obj = new JspSistemas();
		
		//************************************************************
		// se obtiene el dni de la session activa
		//************************************************************
		
		HttpSession session = request.getSession();
		String cod_session =session.getId();

		String dniResponsable = null;
		if(session.getAttribute("dni") != null)			
			dniResponsable = session.getAttribute("dni").toString();
		
		//Obtenemos los datos del Usuario
		Usuario usuario = null;
		if(session.getAttribute("usuario") != null)			
			usuario = (Usuario)session.getAttribute("usuario");
		
		
		if (usuario == null)
			throw new Exception("No se ha identificado al usuario");
		
		obj.setUsuario(usuario);				
		//************************************************************
				

		Integer idSistema = null;
		String accion = null;
		String mensajeUsuario = "";

		List<Sistema> sistemas = sistemaAdmService.getSistemas();		
		obj.setSistemas(sistemas);

		//String codEstadoParticipante = null;
		// obtener valores del accion de usuario

		accion = request.getParameter("accion");
		
		if (accion!= null && !accion.equals(""))
		{
			if (accion.equals("ELIMINAR"))			
			{
				if (request.getParameter("id_sistema") != null && !request.getParameter("id_sistema").equals(""))
				{
					idSistema = Integer.parseInt(request.getParameter("id_sistema"));
					mensajeUsuario =  sistemaAdmService.validarEliminarSistema(idSistema);
					if (mensajeUsuario.equals(""))
					{
						sistemaAdmService.eliminarSistema(idSistema);
						sistemas = sistemaAdmService.getSistemas();
						obj.setSistemas(sistemas);
					}
				}
			}
		}

		obj.setMensaje_usuario(mensajeUsuario);
		// set valores de los controles
		request.setAttribute("DATALIST", sistemas);
		
		return obj;
	}
}
